package com.fjnu.service;

import com.fjnu.domain.dto.UserConditionDto;
import com.fjnu.domain.entity.User;
import com.fjnu.domain.vo.PageResult;
import java.util.List;

public interface UserService {
    /**
     * （1）根据用户名查询用户
     * @param username 用户名
     * @return 用户对象，若不存在则返回null
     */
    User queryByName(String username);

    /**
     * （2）用户注册
     * @param user 用户对象
     * @return 0表示注册失败，1表示注册成功
     */
    int register(User user);

    /**
     * （3）根据查询条件分页查询用户列表
     * @param userCondition 用户查询条件
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 分页结果对象
     */
    PageResult queryUsers(UserConditionDto userCondition, Integer pageNum, Integer pageSize);

    /**
     * （4）根据用户id分配角色列表
     * @param userId 用户ID
     * @param roleIds 角色ID列表
     */
    void addAssignRole(String userId, List<String> roleIds);

    /**
     * （5）修改用户密码
     * @param userId 用户ID
     * @param newPassword 新密码
     * @return 1表示修改成功，0表示修改失败
     */
    int updatePassword(Integer userId, String newPassword);
}